Systems and methods for rational selection of context sequences and sequence templates

ABSTRACT

Provided are systems and methods for rational selection of context sequences and sequence templates including a computer implemented method for obtaining a repository of attributes sets where the attributes sets are statistically associated with a sequence template representing two or more context sequences.

FIELD OF INVENTION

The present invention relates to the analysis of polynucleotide sequence clusters, and in particular for the characterization of such sequence according to one or more parameters.

BACKGROUND OF THE INVENTION

I. Analyzing Polynucleotide Sequences by Clustering

The increasing amounts of polynucleotide sequence data present an analytical challenge. Such large amounts of data on the one hand provide an opportunity for extensive research, but on the other hand are difficult to analyze by conventional analytical methods. However, one method that has been found to be generally effective for analyzing such large amounts of sequence data is clustering.

Clustering may be performed in a variety of methods. Hierarchical clustering, for example, seeks to create by steps of either mergers or divisions, a hierarchy of segments or clusters. Agglomerative approaches build the hierarchy of clusters by steps of such mergers. Some approaches combine the above two¹.

In addition, there are also non-hierarchical methods, which do not seek to create a hierarchy of segments or clusters. The K-Means clustering algorithm is an example of such a clustering technique. It has been used in combination with other techniques, for example, for exploring protein structure². It was also used to identify recurring local sequence motifs for proteins³.

II. Context Polynucleotide Sequence Analysis

In addition to analyzing polynucleotide sequences by clustering, sequences may be analyzed by context. Heidecker and Messing⁴ found the NNANNAUGGC motif in the AUG context. Joshi⁵ identified the consensus sequence of AAAAACAA[A/C]AAUGGC. More recently, a survey which included 5074 plant genes demonstrated that higher plants have an AC-rich consensus sequence, aaaaacaA(A/C)aAUGGCg as a context of AUG⁶. These finding were recently supported⁷.

Analysis of 5′ untranslated region of mRNA of vertebrates were initially focused on conserved consensus sequence signals which accommodated translation initiation⁸. Studies which followed, attempted to analyze the consensus sequence about said translation initiation signal⁹. The later study has demonstrated conserved purines at position −3 and at position +4. The following conserved sequences were identified in the same study: (GCC)GCC(A/G)CCAUGG.

Consensus sequences are useful in research for locating the translation initiator codon. The untranslated leader sequence may additionally influence gene expression levels¹⁰. It was previously appreciated that Kozak-Like elements in the context of the initiator codon indeed affect expression levels^(11,12,13,14). Therefore, in U.S. Pat. No. 7,253,342, leader sequence was used to directly influence the expression of the specifically attached gene by either increasing expression, or for maintaining stable mRNA levels¹⁵.

SUMMARY OF THE INVENTION

In one aspect, the present invention is directed to a computer implemented method for obtaining a repository of attributes sets, wherein attributes sets are statistically associated with a sequence template representing two or more context sequences, comprising:

(a) obtaining a dataset of context sequences;

(b) transforming each context sequence to a sequence template, thereby obtaining a dataset of sequence templates;

(c) clustering said dataset of sequence templates into a plurality of clusters according to a distance formula; wherein at least one of said clusters is statistically associated with at least one attributes set;

(d) inserting into said repository each of said clusters and said attribute set which is statistically associated with said each of said clusters;

In one embodiment, the dataset of context sequences of step is further subjected to multiple sequence alignment. The later provides a solution in a particular instance, for example, where the context sequences in the data set are of different lengths or where the context sequences in the data were substantially affected by insertion/deletion regions.

In another aspect, the present invention is directed to repository obtained by the computer implemented method obtaining a repository of attributes sets as defined.

In a second aspect, the present invention is directed to a computer implemented method for identifying a sequence template as statistically associated with an attribute set of interest, comprising:

(a) providing a repository of attributes sets; wherein attributes sets are statistically associated with a sequence template representing two or more context sequences;

(b) selecting an attributes set; and

(c) retrieving at least one sequence template statistically associated with said attribute set.

Optionally, the computer implemented for identifying a sequence template as statistically associated with an attribute set of interest, further comprises the step of merging at least two retrieved sequence templates.

In one embodiment, the attributes are selected from: the Gene Ontology Project (GO), Interpro annotation (European Molecular Biology Laboratory, EMBL), SMART (a Simple Modular Architecture Research Tool, found at smart.embl-heidelberg.de), UniProt Knowledgebase (SwissProt), OMIM (by NCBI) PROSITE (by the Swiss Institute of Bioinformatics), Protein Information Resource (PIR), GeneCards, and Kyoto Encyclopedia of Genes and Genomes (KEGG).

In a third aspect, the present invention is directed to a computer memory system comprising a plurality of tree topologies representing plurality of (k) heaps, wherein the plurality of tree topologies is managed through a common interface; and (k≧1).

In a one embodiment, the heaps are min heaps. In another embodiment, the heaps are max heaps.

In yet another embodiment, an active subset of heaps is held in Random Access Memory (RAM), while the rest of said heaps are maintained on a secondary storage.

In yet another aspect, the invention is directed to a computer implemented method for clustering a plurality of polynucleotide sequences, comprising: determining an attributes set for the plurality of polynucleotide sequences; and clustering the polynucleotide sequences into a plurality of clusters according to values of said attributes set.

In another aspect, the invention is further directed to a method of preparing a polynucleotide construct, comprising:

(a) identifying a sequence template as statistically associated with an attribute set of interest according to the method of the present invention;

(b) preparing a polynucleotide construct having at least one portion operably linked to a context sequence; wherein said context sequence is characterized as having either 80%-85%, 85%-90%, or 90%-100% homology with said sequence template.

In another embodiment, the preparing step comprises synthesizing said context sequence. In another embodiment, the preparing step comprises the preparing of an expression vector comprising said context sequence. In another embodiment, the preparing step comprises the preparing of a probe comprising said context sequence.

In another aspect, the present invention is directed to a computerized system configured for identifying a sequence template as statistically associated with an attribute set of interest, the computerized system comprising: context sequence clustering module, configured to cluster said sequences into a plurality of clusters; an enrichment analysis module, configured to provide enrichment appraisal, wherein context sequence clustering module being communicatively coupled to the enrichment analysis module.

Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. The materials, methods, and examples provided herein are illustrative only and not intended to be limiting.

Although the present invention is described with regard to a “computer” which may optionally be implemented on a “computer network”, it should be noted that optionally any device featuring a data processor and/or the ability to execute one or more instructions may be described as a computer, including but not limited to a PC (personal computer), or a server. Any two or more of such devices in communication with each other, and/or any computer in communication with any other computer may optionally comprise a “computer network”.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:

FIG. 1 illustrates, in accordance with one embodiment of the present invention, an exemplary computerized system on which the present invention may be implemented.

FIG. 2a illustrates, in accordance with one embodiment of the present invention, an exemplary user interface for obtaining a requested function array from a user.

FIG. 2b illustrates, in accordance with one embodiment of the present invention, an exemplary user interface for obtaining a function array or attributes set of interest which is optionally provided by a user.

FIG. 3 illustrates, in accordance with one embodiment of the present invention, an exemplary user interface for proposing the predicted context sequences for synthesis.

FIG. 4 illustrates, in accordance with one embodiment of the present invention, an exemplary viewer application reproducing a context sequence, the cellular function annotations and the size of the context sequence cluster.

FIG. 5 illustrates, in accordance with one embodiment of the present invention, an exemplary data structure of a function attribute array or the cellular function annotations array.

FIG. 6 illustrates, in accordance with one embodiment of the present invention, a simplified example of ascertaining the processing order of templates. (a) and (b) are two clusters of templates having equal minimum distances to a common template.

FIG. 7 illustrates, in accordance with one embodiment of the present invention, a Simplified example of ascertaining the processing order of clusters. (a′) is a new cluster representing a merger of closest neighbors of (a) which was shown in FIG. 6, and (b) is to be handled subsequently.

FIG. 8 illustrates, in accordance with one embodiment of the present invention, a multiple-tree-array topology within a memory module. The top item is defined as the element having the minimal key value amongst the (k) specific min heaps as shown.

FIG. 8a illustrates, in accordance with one embodiment of the present invention, a multiple-tree-array topology within a memory module. The top item is defined as the element having the maximal key value amongst the (k) specific heaps as shown.

DETAILED DESCRIPTION OF THE INVENTION

The present invention, in some embodiments, is of a system and method for analyzing a plurality of nucleotide or other sequences. In other embodiments, the present invention relates to a system and method which provide more efficient memory structures and computational processes. The later system and method may optionally be used with the former embodiments or may optionally be used independently.

For the sake of clarity only and without any intention of being limiting, the below description is divided into three sections. Section I relates to the system of the present invention; Section II relates to embodiment for obtaining of a repository of attributes sets, statistically associated with context sequences and/or a sequence template representing the them; Section III relates to embodiments which provide more efficient memory structures and computational processes; Section IV details embodiments of a computer implemented method for identifying a sequence template as statistically associated with an attribute set of interest; and Section V relates to experimental examples using such embodiments;

NOMENCLATURE

For the purposes of the present invention, “cellular function annotation”, “function attribute”, and “attribute” of a given gene shall mean an attribute, term, characterization, molecular function annotation, or biological process annotation describing a gene or a gene product. The terms can be used interchangeably and synonymously herein. The cellular function annotation are typically reported in variety of sources such as, but not limited to, the Gene Ontology Project (GO), Interpro annotation (European Molecular Biology Laboratory, EMBL), SMART (a Simple Modular Architecture Research Tool, found at smart.embl-heidelberg.de), UniProt Knowledgebase (SwissProt), OMIM (by NCBI) PROSITE (by the Swiss Institute of Bioinformatics), Protein Information Resource (PIR), GeneCards, Kyoto Encyclopedia of Genes and Genomes (KEGG). It should be emphasized that the above terms and attributes are continuously updated, and new versions are made available on a monthly basis and therefore the systems and methods of the present invention should be interpreted as limited by the gene annotation known at time of filing the application for the invention. Furthermore, it should be noted that the user may optionally operate the method or system of the present invention with any such function attributes, as long as they may be characterized according to a numerical grade; such a grade may optionally be Boolean (“1” or “0”), or alternatively may feature a plurality of discrete numbers or continuous numerical values.

By way of an illustrative example, the term or attribute “cell adhesion” associated to Homo sapiens discoidin domain receptor tyrosine kinase 1 (DDR1, RefSeq accession: NM_001954) is a cellular function annotation. This attribute is found, for example, in Gene Ontology under GO:0007155.

The term “complete function attributes set”, and “complete attributes set” shall mean the complete set of function attributes i.e. all function attributes stored in a repository of the present invention. The terms can be used interchangeably and synonymously herein.

The term “function attributes set”, “attributes set” and “function attributes array” shall mean a subset of the complete function attributes set. The terms can be used interchangeably and synonymously herein. Optionally, the function attributes array can be used to represent a specific user selection in which the user manifests particular function attributes of interest. The user can typically select an attributes set in order to perform the computer implemented method of the present invention for identifying a sequence template whish is statistically associated with the attribute set of interest.

Alternatively, by way of non-limiting example, the attributes set can be used to represent attributes set which is statistically associated with a sequence template. The later can be identified in functional appraisal performed by the methods and system of the present invention. The later is typically performed with respect to a cluster of context sequences or attributes associated with a gene operably linked to the context sequences of the cluster. The results of the functional appraisal performed can thus be represented by an attributes set.

The attributes set optionally feature an array of real numbers, with each of said numbers representing a level of association of a particular annotation or attribute. It can also feature an array of binary digits, where each of said binary digit representing association with a particular annotation or attribute. In this case, ‘0’ can represent the absence of association of a particular function attribute and ‘1’ can indicates statistical association of the particular function attribute.

The term “sequence” shall mean a polynucleotide sequence, continuous or otherwise, of nucleotides being selected from a group consisting of deoxyribonucleotides (DNA) and ribonucleotides (RNA), genomic or otherwise, coding or non-coding. Sequence does not encompass therefore order in general or genomic meta structures.

The term “context sequence” shall mean a sequence which generally regulate or otherwise affect a gene or a gene product. In other words, a context sequence is defined as a sequence which is operably linked or being deemed as associated to a gene or gene product. By way of non-limiting example, a context sequence may comprise a stretch of nucleotides preceding the translation initiation codon of mRNA molecule. Optionally, a context sequence may comprise a stretch of nucleotides downstream to the translation termination codon of mRNA molecule. In the above non-limiting examples the context sequence was defined by its relative location to a coding region. However, a context sequence of the present invention may comprise a promoter, enhancer, inhibitor or other regulatory region.

For the purposes of the present invention, “template” or “sequence template” shall include a matrix T_(4×l), where (l) denotes the length of the context sequences or aligned context sequence which are represented by the template. The template can either represent the distribution of each nucleotide for each position along a context sequence. The template can further include a matrix (T) where T[a,i] holds the distribution of nucleotide (a) at position (i) in of the context sequences represented. The terms can be used interchangeably and synonymously herein.

As discussed below, at initiation of a clustering method each context sequence is transformed to a template. The skilled person in the art would appreciate that context sequence transformation into a template can typically be performed as an integral part of matrix allocation. By way of a non-limiting example, if a single context sequence has ‘A’ at position 3 then T[‘A’,3]=1.0 (T[‘C’,3]=0, for obvious reasons).

For example, the sequence ‘AG’ is represented by a template having the following distribution matrix:

Simplified example of distribution matrix held in a template, at initialization. At this stage, the template represents a single sequence having the prescribed distributions.

Position = 0 Position = 1 (A) 1.0 0 (G) 0 1.0 (T) 0 0 (C) 0 0

During the prosecution of the methods of the present invention a sequence template can represent a cluster of context sequences and the distribution matrix will thus reflect the distribution of nucleotides which characterizes the context sequences within the cluster. The sequence template can typically further comprise a set of gene names or unique identifiers which are operably linked or affected by the context sequences represented thereby.

The term “repository” and “database” shall mean a database or any system configured for insertion and retrieval of information of the present invention. The terms can be used interchangeably and synonymously herein.

The repository of the present invention is typically configured for insertion and retrieval of attributes, attributes set, and context sequences. The later are typically in a form of sequence of ASCII characters. The repository of the present invention can also be configured for insertion and retrieval of sequence templates which can typically comprise an array of numbers, or a 2D matrix of numbers. Moreover, a repository of the present invention is typically configured to insert and retrieve pointers or association between information elements stored therein. In particular, the repository of the present invention can insert and retrieve an attributes set, a sequence template, and to associate between them; so as to enable retrieval of a sequence template together with at least one respective attributes set. Moreover, it can be configured to enable retrieval of an attributes set together with at least one respective sequence template.

The term “multiple sequence alignment”, “MSA” or “alignment” shall have the ordinary meaning as used by the skill person in the art of bioinformatics. CLUSTAL W is typical software package used for that purpose, and can be utilized by usage of default values and other values being adapted for the particular dataset in hand.

The term “synthetic context sequence” or “predicted context sequence” shall mean at least one context sequence or sequence template representing said context sequence that was identified by the systems and methods of the present invention, as statistically associated with an attribute set of interest.

Embodiments of the invention can be used in a general purpose computer system suitably adapted and designed for performing the extensive context sequences clustering, enrichment analysis and comparison.

SECTION I

FIG. 1 illustrates, in accordance with one embodiment of the present invention, an exemplary system on which the present invention may be implemented. In an embodiment, the computerized system 100 permits clients or users to provide an attributes set of interest for analysis 135. Typically, the attributes set can consist of two or more attributes of interest.

The clients or users can further provide a dataset of context sequences 105 as input information; thereby obtaining a dataset of context sequences for analysis. The context sequences can typically further comprise a set of gene names or unique identifiers which are operably linked or affected by the context sequences, respectively. The attributes set of interest 135 and context sequences 105 can be entered via a user interface specifically configured for that purpose. Where the system 100 is implemented on a computer network, the attributes set 135 and context sequences 105 can be provided through a browser application, such as, but not limited to web browsing application. Alternatively, the attributes set 135 or the context sequences 105 can be comprised in a file. The file can be uploaded to the system 100 though either a network or other information uploading methods known in the art for that purpose.

The context sequence clustering module 110 clusters the context sequences as described hereinafter. Typically, the dataset of context sequences 105 comprises a huge amount of sequence information. In turn, each context sequence is transformed into a sequence template. Clustering of the dataset of sequence templates is performed and results with plurality of clusters. In turn, each gene cluster or the genes which are regulated or affected by the context sequences within the cluster, is subjected to functional appraisal. The result of the functional appraisals is a plurality of clusters each statistically associated with their respective attributes set. The system and method of the present invention enables obtaining of heterogeneous clusters, as defined below.

The clustering procedures of the present invention are, inter alia, utilized in order to obtain a repository of attributes sets, statistically associated with a sequence template. Optionally, the sequence template represents two of more context sequences. The later may not be identical. Therefore, the clustering procedures of the present invention enable obtaining a heterogeneous repository, as defined hereinafter.

The clustering procedures of the present invention can use a 2-dimensional distance matrix to store and retrieve distance related information. However, in order to produce improved performance, distance related information is typically stored and retrieved from computer memory system comprising of plurality of heaps 130, or heap data structures. Data items which are stored and retrieved in the computer memory system 130 of the present invention typically comprise references pointing at two matrixes or templates and a real number. Each said templates represent a cluster of context sequences and the real number measures the distance between the clusters. Optionally, data items may further comprise information such as, but not limited to, gene names or unique identifiers of genes which were classified within the clusters. Alternatively, a template can further comprise information such as gene names or unique identifiers genes which were classified within the cluster which is represented by the template.

Clustering of the present invention is typically performed by the clustering module 110. The context sequence clustering module 110 stores and retrieves data items from the computer memory system (or memory module) 130. The structure of the computer memory system is described below. In essence, the memory system is based on plurality of Heap data structure which was restructured and remodeled, as described below, to improve performance especially where large data set are in hand. For the purpose of the present application, the memory systems shall also be referred to as “multiple-tree-array” the particulars of which are described below. The later typically comprises min heaps and adheres to the invariant according to which the top data item in the multiple-tree-array is a data item referencing a pair of templates having a minimal distance between them. The multiple-tree-array allows the system 100 to perform the clustering of the context sequences and enrichment analysis at an extremely efficient manner reducing the complexity by about one order in comparison to typical 2-dimensional distance matrixes.

The enrichment analysis module 120 performs enrichment appraisals or functional appraisals as described below. In an embodiment, the context sequence clustering module 110 sends a request to the enrichment analysis module 120. The request comprises a data set of context sequences or unique identifiers representing the context sequences within a cluster or unique identifiers of genes regulated or otherwise affected by context sequences. The request typically channeled through either a communication port, BUS or a computer network 115 to the enrichment analysis module 120.

In an embodiment, clusters of context sequences together with their respective enrichment appraisals can be stored in or retrieved from a repository or database 125. In an embodiment, the results of enrichment appraisals are represented by an attributes set or function attribute array being associated with respective cluster or clusters.

The function array comparator 140 is adapted to compare the attributes set of interest (typically provided by a user), with said stored enrichment appraisals retrieved from the repository 125.

FIG. 2a and FIG. 2b illustrate, in accordance with one embodiment of the present invention, an exemplary user interface 200 for obtaining an attributes set of interest from a user. As an alternative, an attributes set is obtained from a client over the network (not shown). The client may be local or remote, either human or automated procedure performed on a computer system. Typically, the user select an attributes set from a list of function attributes 210. The list of function attributes contains at least a sub set of a complete function attributes set. In one embodiment, the user selects the function attributes of interest in order retrieve a sequence template statistically associated with his selection.

The sequence template retrieved can be used in order to design a context sequence for the purpose of either synthesis or manufacture of polynucleotide construct, or vector. In a one embodiment, the context sequence designed comprises the most dominant nucleotide in each position along the sequence template retrieved. In another embodiment, the context sequence designed comprises 80%-85%, 85%-90%, or 90%-100% homology with sequence template or the sequence comprising the most dominant nucleotide in each position along the sequence template.

The subset of function attributes selected by the user can be represented by a function attribute array or the attributes set. The manual selection can be performed with checkboxes 215 which indicate whether a particular function attribute was selected. As the complete function attributes set stored in the computerized system 100 may exceed the page size, page scroller 205 can provide means for navigating through the entire list of function attribute. The list of function attributes can be organized by several techniques, such as but not limited to, lexicographical order, classification, or source of the function attribute. In another embodiment, the user interface includes textboxes 220 in which a user enters the importance degree or confidence level associate with a particular function attribute.

The system of the present invention is adapted to retrieve an enrichment appraisal previously stored in the repository. The enrichment appraisal typically shares a similarity with an attributes set of interest. In another embodiment, the system of the present invention is adapted to retrieve an enrichment appraisal which shares similarity with an attributes set of interest at a predetermined threshold. Alternatively, the system of the present invention is adapted to retrieve an enrichment appraisal which shares maximal similarity with an attributes set of interest.

The output 150 comprises a cluster of context sequences or a sequence template representation thereof, which is statistically associated with said retrieved enrichment appraisal(s). In an embodiment, the output 150 comprises a cluster of context sequences or sequence template representation thereof which are statistically associated with said retrieved enrichment appraisal(s).

Those skilled in the art would appreciate that the invention may be practiced with other computer based system configurations, including network PCs, or hardware specifically designed to perform the procedures and functionalities contemplated hereinafter. The invention may also be practiced in distributed computing environments where procedure of the present invention is performed by remote dedicated processing devices that are linked through a communications network. In a distributed computing environment, for example, program modules such as 110, 120, 125, 130, and 140 may be located in both local and remote apparatus.

The components shown in FIG. 1 are only examples, and are not intended to suggest any limitation as to the scope of the functionality of the invention; the invention is not necessarily dependent on the features shown in FIG. 1.

FIG. 3 illustrates, in accordance with one embodiment of the present invention, an exemplary user interface 300 providing an identified context sequence 310 or a sequence template representing a cluster of context sequences statistically associated with the attributes set of interest. Typically, the identified context sequence or the sequence template consists of those which are statistically associated with stored attributes sets sharing maximal similarity with the attributes set of interest. Similarity or similarity degree is determined by the method described below.

In an embodiment, the user interface 300 includes a textbox, label, or information box 320. Each context sequence 310 or sequence template (not shown) can be associated with textbox, label, or information box 320. The textbox, label, or information box may include statistical confidence level of the context sequence such as p_value or a false discovery rate (FDR) or other enrichment estimator. The page scroller 305 can provide means for navigating through the entire list of context sequences where, for example, the predicted context sequences exceed the window size of the user interface 300.

FIG. 4 illustrates, in accordance with one embodiment of the present invention, another exemplary user interface 400 consists of a sequence template 410 representing a cluster of context sequences, said statistically associated attributes set 420 and the size of the cluster 430. Typically, the user interface 400 can be reached be double clicking on a predicted context sequences 310. The distribution table 415 can comprises a matrix representing the probability of a given nucleotide at a particular position along the context sequences of the current cluster viewed. Each column can represent a position along a predicted context sequence. The most dominant nucleotide at a particular position along the identified context sequences can appear at the top of the respective column 410. Where two nucleotides share similar of identical dominance level both can appear at the top of the respective column 425.

In another embodiment, the user interface 400 is utilized for viewing the clustered context sequences 410 comprising polypeptide sequences. In such an embodiment, the distribution table 415 can comprise a matrix representing the probability of a given amino acid at a particular position along the predicted context sequence. Each column can represent a position along a predicted context sequence. The most dominant amino acid at a particular position along the predicted context sequence can appear at the top of the respective column 410, while two amino acids sharing similar or identical dominance levels both can appear at the top of the respective column 425.

FIG. 5 illustrates, in accordance with one embodiment of the present invention, an exemplary data structure of a function attribute array or the attributes set 500. The attributes set 500 typically features a matrix of cells or items 510. Each of the cells in the matrix can comprise several fields or objects. In an embodiment, the first field of object is a function name/attribute 520 and the second is a value 530 associated therewith. The value 530 may optionally represent a Boolean variable. In an embodiment, where a Boolean variable in a cell holds #true, for example 530, the attributes set includes the particular attribute 520. On the other hand, where a Boolean variable in a cell holds #false the attributes set does not include the particular attribute. In another embodiment, value 530 can be represented a Real variable which represents the statistical confidence level of the particular attribute. By way of non-limiting example, where value 530 hold “1.0E-17”, the function attribute array highly likely to include a particular attribute 520. On the other hand, if value 530 hold “1.0”, the function attribute array most likely does not include the particular attribute 520.

One of ordinary skill in the art would appreciate that the data structure of the attributes set can be varied almost indefinitely. Many other data structures can be employed for storing a subset of attribute. By way of non limiting examples, the attributes set may optionally be stored as a Dictionary or hash table. Other one limiting examples: array of pair <string, boolean>, or indeed a 2D matrix where one dimension is the function attribute and the other dimension is a value.

The attributes set of interest 135 can be represented by the function attribute array 500.

As a mere illustration of the functionality of the present invention, the user may seek to identify one or more sequence templates associated with an attributes set of interest. Assume that the user wishes to consider immunoglobulin and transcription regulation with respect to humans. The user selection of interest is transformed into an attributes set 135 which are typically represented by the function attribute array 500. The function array comparator 140 compares the attributes set received comprising the user selection with said stored enrichment appraisals. The later are retrieved from the repository 125, with respect to humans. Typically, the user can request retrieval of a stored sequence template which is statistically associated with the specific function attributes chosen by the user. Alternatively, the user can retrieve the context sequences which were clustered together, and represented by the template. The user may find it advantageous to design or synthesize polynucleotide or polypeptide sequences on the basis of their functional association.

Therefore, the system and methods of the present invention can thus be used in preparing a polynucleotide construct, comprising: identifying a sequence template as statistically associated with an attribute set of interest by a user or client; and preparing a polynucleotide construct having at least one portion operably linked to a context sequence; wherein said context sequence is characterized as having either 80%-85%, 85%-90%, or 90%-100% homology with said sequence template. The user may wish to synthesize said context sequence, by utilizing any synthesis method known in the art for that purpose. Alternatively, the user may construct an expression vector comprising said context sequence or prepare a probe comprising the identified context sequence.

Homology in the range of X %-Y % shall be defined as identity score in the percentage range of X %-Y %. Said identity score is typically provided by an alignment analysis program. The alignment analysis can be performed using a numerous commercial sequence analysis packages, such as, but not limited to WATER (Smith-Waterman local alignment) provided by EMBOSS (European Molecular Biology Open Software Suite) operated with either default values or open gap penalty: 11, extended gap penalty: 0.5, and the default EDNAFULL or BLOSUM62 similarity matrix. Therefore, Homology in the range of %80-%100, as an example, shall mean that an identity score which ranges between 80%-100% using WATER according to the parameters set above.

Without limiting the applications of the presently described, the system described above is further adapted to execute the methods described hereinafter. In particular, the method for obtaining a repository of attributes sets, wherein attributes sets are statistically associated with a sequence template representing two or more context sequences, and the method for identifying a sequence template as statistically associated with an attribute set of interest.

SECTION II

The K-Means algorithm and its derivatives require the initial input of k-criterion from the user. For some clustering purposes, as the present purposes, the initial input of k-criterion is simply not known. For example, the user might not know how many clusters (k) will achieve well separated clusters enriched with functional attributes. It may well be any of 1≦k≦N possibilities; for example where N=16,000 there are 16,000 possibilities.

Furthermore, the results of the K-Means algorithm are extremely sensitive to the initial random selection of cluster representatives. It was recently demonstrated that the worst-case running time of K-Means is super-polynomial i.e. 2^(Ω(√{square root over (n)})16).

Therefore in one of its embodiments, the present invention utilizes a different computer implemented method (hereinafter: “LBDL (Lower Bound Distance Limit) clustering method”). The LBDL is preferably used for large datasets e.g. N>16000 context sequences, and/or where no prior information relating to the suitable number of clusters is available i.e. k is unknown. While LBDL is preferred over K-means for example, the present invention is not limited to a particular clustering algorithm and may in fact optionally be implemented with any type of clustering.

Accordingly, the LBDL clustering method of the present invention does not require k-criterion at all. Instead, it requires a lower bound distance limit (LBDL) between clusters, as detailed below. This lower bound criterion is advantageous because it encapsulates actual practical meaning to the person skilled in the art i.e. distance between clusters of nucleic or peptide sequences.

The LBDL Clustering Method and Implementation Considerations

For the purposes of the present invention, “lower bound distance limit” shall mean a predetermined real number representing the lower bound distance limit

For the purposes of the present invention, “lower bound distance limit invariant” shall mean the following invariant (hereafter: the LDBL-invariant): during the execution of the computer implemented LBDL clustering method, clusters will not merge where the distance between them is greater than a given distance limit.

In the present invention “data item”, “heap item”, or “(i,j,d(i,j))” shall mean a data item in a memory structure comprising (i) representing a first template, (j) representing a second template, and d(i,j) the distance between the templates. One of ordinary skill in the art would appreciate that the data item can be presented be other means such as, but not limited to, other data items, or differently ordered data items, all which essentially hold the template information and distance information relating thereto.

The LBDL method is provided hereinafter. In essence, each sequence under analysis is transformed to an information node or, as exemplified below, a sequence template. The algorithm efficiently performs merger operations, until satisfaction of the LBDL criteria. Each unraveled cluster is in turn subjected statistical functional appraisal. Each sequence template representing a cluster of context sequences is stored together with the associated results of the functional appraisal in a repository:

For the purposes of the present application ‘//’ shall mean a comment or remark.

-   -   1. for each context sequence in dataset allocate a template //         representing the distribution of nucleotides along the sequence.         This step is an initialization step in which each context         sequence respectively represented by a template. A particular         embodiment or template representation is detailed below.     -   2. for each pair (i,j), i≠j,i,jε{Context-sequences-in-dataset}     -   3. insert (i,j,d(i,j)) into a multiple-tree-array.         // In steps 2-3 the distance between each pair of templates is         measured. Each pair of templates is then inserted into a         multiple-tree-array together with the distance between them. For         clarification (a,b,c) of step 3 represents an abstract data         structure or data item typically comprising 3 numbers, two of         which are identifying a pair of templates and the third is a         distance measurement between them.     -   4. prevMin=−1: List CurMin=Empty List;         // initialization of variables     -   5. While (! multiple-tree-array.empty( )) {// This is the main         loop     -   6. min=multiple-tree-array.DeleteMin( );         // current minimal data item stored in ‘min’ Retrieval of the         minimal data item is typically performed by executing DeleteMin(         ) procedure on a multiple-tree-array data structure.         Multiple-tree-arrays are defined below and by definition the         minimal data item is an item having minimum distance held         therein i.e. the data item represents a pair of templates         sharing the highest similarity.     -   7. CurMin.Insert(min);         // Insert the minimal data item stored in the         multiple-tree-array into CurMin (the List data structure defined         in step 4).     -   8. if (min.distance>lower_bound_distance_limit) Break;}         // The main loop continues until the lower_bound_distance_limit         criterion is satisfied. The Lower Bound Distance limit is         defined below. ‘Break’ shall mean end loop i.e. continue to step         12.     -   9. if (min.distance !=prevMin) {         //‘!=’ means not equal. Therefore, where the condition of step 9         is satisfied, the previously handled distance stored in         ‘prevMin’ is not equal the distance of current minimum distance         i.e. ‘min.distance’. CurMin holds all items which were retrieved         from the multiple-tree-array and are having same distance. This         is done to ensure concurrent and equal treatment of data items         which share the same distance.     -   10. HandleCurrentTemplates(CurMin);         //As previously noted, CurMin stores all items which were         retrieved from the multiple-tree-array and are having same         distance. HandleCurrentTemplates( ) is a procedure which is         defined below, and in essence this procedure which handles the         merger operation(s) of the currently handled cluster(s).     -   11. prevMin=min.distance; CurMin.Empty( )}         //As all items of CurMin were handled by HandleCurrentTemplates,         initialization of the variables is required to verify that         CurMin is empty. ‘Empty( )’ is typically a procedure which         empties the CurMin List. ‘prevMin=min.distance’ updates the         “previous” minimal distance with the current one (in turn the         “current” is the “previous” in the next steps).     -   12. Subject each remaining template to a functional appraisal.         //each cluster of context sequences which is represented by a         sequence template are subjected to a functional appraisal. This         is typically performed by first retrieving the names or unique         identifiers of genes regulated or affected by the context         sequence within a cluster; and secondly, executing functional         appraisal on the names or unique identifiers retrieved.     -   13. Store <Cluster, functional appraisal results> in a         repository;}}

In an embodiment, each sequence template(s) or context sequence(s) clusters are stored in a repository together with the associated functional appraisal result. The functional appraisal result can be stored or represented as an attributes set or a list. In an embodiment, the associated functional appraisal is represented by the function attributes array 500. The method therefore obtains a repository of attributes sets, where the attributes set is statistically associated with a sequence template or cluster of context sequences represented thereby.

Typically, a sequence template represents a cluster of two or more context sequences. The later may be either identical context sequences or typically context sequence consisting of different sequences. Moreover, the attributes set associated with a cluster of context sequence(s) can consist of two or more attributes.

A given cluster may also be associated with a particular attribute even where at least one of the context sequence (or gene affected thereby) is not characterized by the attribute. In other words, a cluster may be deemed as statistically associated with an attribute by functional appraisal even where a specific context sequence within the cluster is not particularly characterized by that attribute.

Therefore, a cluster in the present invention may therefore be deemed as a heterogeneous cluster. For the purpose of the present invention “homogeneous cluster” shall mean a context sequence cluster (or sequence template representing said cluster) wherein all context sequences in the cluster are of identical sequence. Alternatively, the term homogeneous cluster shall encompass a context sequence cluster (or sequence template representing said cluster) wherein all genes/context sequences in the cluster are characterized by an attribute. A “heterogeneous cluster” shall mean a sequence context (or sequence template representing said cluster) which is not a homogeneous cluster. In other words, a cluster exhibiting either: (1) at least one pair of non identical context sequences, or (2) statistical association to an attribute wherein at least one gene/context sequence is not characterized by the attribute.

A “heterogeneous repository” shall refer to a repository comprising at least one heterogeneous cluster. Examples 1 to 4 exemplifies numerous heterogeneous clusters detailed in Tables 1 to 4.

In an embodiment, either steps step 12 or 13 further comprise the step of discarding those attributes where the functional appraisal resulted with P_value greater than 0.3, 0.2, 0.1, and preferably greater than 0.05. The person skilled in the art would appreciate that other P_values can be selected for a particular data set in hand.

The lower_bound_distance_limit (LBDL) can be set to various values depending on the distance formula used and the sought degree of separation between the clusters. Where the distance formula used is d(V,W) (defined below) and (l) denotes the length of the context sequences, the LBDL can range between 2%×(2l) to 5%×(2l), 5%×(2l) to 20%×(2l), or 20%×(2l) to 55%×(2l). The later is the most preferable as an initial configuration for analysis.

In a one embodiment, the dataset of context sequences is further subjected to multiple sequence alignment. The person skilled in the art would understand multiple sequence alignment can result in gap insertions which in turn may lengthen the length (l) of the context sequences.

By way of an illustration of LBDL invariant, observe the following aligned sequence population (N=2540):

I) 2000 sequences comprising: “AAAAA”

II) 500 sequences comprising: “GGGGG”

III) 30 sequences comprising: “TTTTT”

IV) 5 sequences comprising: “TATAT”

V) 5 sequences: “GTGTG”

With the knowledge that the size of the population is 2540, it is difficult to predict that k=5 (i.e. 5 clusters) will produce well separated clusters of gene sequences (why not try k=6, 7, . . . 1001 and so forth). This is, of course, an exemplary instance. In reality, it may well be that k=1001 will be produce reasonably separated clusters in the vector space.

If the user would enforce k=2 (i.e. two clusters), the K-Means algorithm will cluster the population as follows:

A) 2000 sequences having “AAAAA” as central representative.

B) 540 sequences having effectively “GGGGG” as central representative.

Groups III-V are therefore completely ignored. This might be an unacceptable result. The LBDL clustering method of the present invention avoids this problem. In this regard, ignoring clusters of genes simply because they are relatively small in size is inappropriate and unacceptable because even clusters consisting of even just a few genes may well have great value.

With respect to the above clustering example, assume that the invariant ensures that LBDL=ε>0, ε represent a real number having a positive and almost zero value. For that Lower Bound Distance Limit, the only possible sequence mergers occur among identical sequences i.e. where the distance is 0≦ε. Merging the identical sequences together will result in the original clusters I-V.

In order to perform the clustering of the context sequences, parameterization of each context sequence is required. For that end, at the initialization stage of the clustering method, each context sequence typically requires transformation into a corresponding sequence template.

Distance measurements (d) between any pair of templates V and W can be performed as follows:

-   -   d←0     -   for each i: 0 to l−1         -   for each aε{A,T,G,C}         -   {d+=|V[a,i]−W[a,i]|²}

Wherein: (l) denotes the length of the context sequences or alternatively the length or the aligned context sequences.

One of ordinary skill in the art would appreciate that these different distance formulas can be used for the purposes of the present invention. By way of non-limiting example, the distance calculation procedure can be varied such that the fourth step would comprise d+=|V[a,i]−W[a,i]|. Alternatively, the distance calculation procedure can be varied such that the fourth step would comprise d+=V[a,i]−W[a,i]^(t),tεN.

Merger of a pair of context sequence clusters V′ and W′, which are respectively represented by sequence templates V and W, can be defined as follows: The function Merge/Cluster creates and/or returns a sequence template T, representing the cluster T′ consisting of both the context sequences of V′ and W′ (i.e. T′=V′∪W′). The sequence template T would hold the following matrix T_(4×l) as follows:

-   -   for each i: 0 to l−1         -   for each aε{A,T,G,C} perform:

$\left\{ {{T\left\lbrack {a,p} \right\rbrack} = \frac{{{A} \cdot {V\left\lbrack {a,p} \right\rbrack}} + {{B} \cdot {W\left\lbrack {a,p} \right\rbrack}}}{C}} \right\}$

This merger procedure can be referred to as “merge”, or “merger”.

In an embodiment, the above merger procedures can handle a merger of more than two context sequence clusters by using sequential merger procedures. By way of non-limiting example, merger of 3 templates may typically require 2 merger operations. As an illustration, the first merger can take place with respect to templates 1 and 2, the product of which can be denoted as new template 12′. A second merger can merge the new template 12′ with template 3 thereby producing a single template 123′ representing all the context sequences which were previously represented by the separate templates 1, 2 and 3.

Memory Allocation of Sequence Templates

Sequence templates as defined above may be designed as a data structure or object. The sequence template essentially represents a subset of context sequences from the dataset i.e. a cluster. The sequence template would, therefore, hold distribution information of each nucleotide at each position in the cluster. The sequence template will typically hold the specific sequences which are grouped together in the cluster represented thereby. Optionally, a sequence template further holds gene name(s) or unique gene IDs which are regulated or otherwise affected by the context sequences within the respective cluster.

At initialization, each sequence in the dataset is transformed to a sequence template.

Order of Merging Operations

For the purposes of the present invention “handling current templates”, “HandleCurrentTemplate( )” and “HandleCurrentTemplates( )” shall have the following meaning. Before the algorithm handles the current templates, any pair of templates (or indeed the clusters represented thereby) having equal distances measured between them are preferably stored in CurMin List. The order of merger the clusters or templates representing them will take place according to the order-invariant as explained and exemplified below.

As described above, the order of merger operations according to the LBDL clustering method is dominated by the distance between the clusters. However, the context sequence dataset might include subsets of numerous clusters having equal or substantially equal distances. The initial order of these clusters or the order of the context sequence may affect to final results of the algorithm. Therefore, in an embodiment, the clustering method of the present invention aims at reducing the sensitivity of the algorithm to the initial order.

To that end, the cluster of context sequences which share equal are handled together without preferring arbitrarily any particular cluster. In particular, where pairs of clusters (or templates representing them) shares a common cluster and the distance between the pair clusters is equal, as illustrated in FIG. 6, they are handled together, as explained below. More formally: given the pair (i,j), and the pair (l,m), (i, j, l, and m are clusters), said pairs will thus be defined as sharing a common cluster if and only if i=1 or i=m or j=l or j=m.

The following invariant will therefore apply (henceforth: the order-invariant): As any stage of the execution of a clustering method, the common template having maximum number of neighboring clusters will be the first to merge or be handle i.e. the largest “cluster” of clusters currently (held in CurMin List) will be merged first. Subsequently, the algorithm merges the rest of the currently handled templates according to the order-invariant.

FIG. 6 illustrates, in accordance with one embodiment of the present invention, a simplified example of ascertaining the processing order of templates. (a) and (b), for example, are two clusters of templates having equal distances to a common cluster.

Observe that common template (a) has 4 neighbors and while the central representative of cluster (b) has only 3 neighbors. Therefore, cluster (a) will be processed first. FIG. 7 illustrates the application of the order-invariant according to which cluster (a), previously shown in FIG. 6, was merged prior to handling of cluster (b). As a result, (a′) is a new cluster representing the merger, and (b) is to be handled subsequently according to the order-invariant.

Following the merger operation, the multiple-tree-array is typically updated with all new distances between the pre-existing cluster (or templates representing them) and the newly merged templates.

For each pair of templates (i,j) where the d(i,j)>LBDL, the newly created (i,j,d(i,j)) need not be stored in the multiple-tree-array and can be totally ignored as explained before.

Otherwise, new heap item (i,j,d(i,j)) is inserted into the multiple-tree-array, with a single proviso. Said insertion should takes place unless the distance d(i,j) is lower than min.distance, defined above. In that case, the handling of data items which are held in CurMin List is temporarily suspended and these data items are re-inserted to the multiple-tree-array.

For example, assume the following data items are held in multiple-tree-array, as follows: (1,5, 120), (5,3, 120), (4,6, 120), (7,4, 125), (1,7, 126), (8,2, 130). Only the first 3 data items will be currently retrieved. These data items share equal distances (120) which is the minimal in the dataset. At a given stage in the execution of the method, these three data items will be held in CurMin List and will be handled together. As the rest of the heap items encapsulate greater distances i.e. 125, 126, and 130, they will be processed later on.

In an embodiment, sorted dictionary data structure is utilized in order to provide fast identification of a common template having the maximal number of neighboring templates. By way of non-limiting example, assume the sorted histogram data structure has the follow data structure: <number of template appearances, sequence template reference>. In the above exemplification, the 3 retrieved data items will generate the following histogram in Sorted dictionary: <2,5>,<1,1>,<1,3>,<1,4>, and <1,6>. The neighbors of template 5 will merge first, under the order-invariant (template referenced as ‘5’; is the common template having maximum number of neighboring clusters).

Complexity Considerations

Utilization of the LDBL-invariant exhibited impressive complexity improvements:

(1) As LBDL based clustering method, by definition, does not require to merge clusters i, and j where the d(i,j)>LBDL, then (i,j,d(i,j)) need not be stored at all .i.e. because the cluster pair i and j will never be merged or clustered together. Reduction of memory usage is therefore apparent.

(2) At any stage of the execution, if DeleteMin( ) procedure retrieves the global minimum which is greater (>) than the LBDL, it directly entails that the rest of the data items in the multiple-tree-array also exceed the LBDL. Therefore, the algorithm can be immediately terminated.

In another embodiment, the present invention utilizes a computer implemented method (hereinafter: “Vector Space clustering method”). Alternatively, the VS clustering method is used for performing clustering which is a variant of LBDL method shown above. This VS method is particularly useful where the length of the context sequences is in the range of 3-17 characters. The skilled person in the art would recognize that range is largely affected by computation time, which is associated with the length, and the computer system employed. Computer systems having high computation capabilities may process context sequences of greater length, including but not limited to the range of 10-15, or even 10-20 characters.

The VS clustering method:

-   -   1. for each c=(a₁a₂a₃ . . . a₁), a_(i)ε{A,T,G,C}, 1≧i≧l{         -   //for each possible sequence in the vector space of length             (l).     -   2. List Cluster=null;     -   3. for each iε{Context-sequence-in-dataset}{     -   4. double distance=d(c,i);         -   //calculate the distance between c and i     -   5. if (distance<=lower_bound_distance_limit) {         -   //cluster together context sequences, if the distance             between them fall within the lower_bound_distance_limit     -   6. Cluster.Insert(i);}     -   7. Subject Cluster to a functional appraisal;         -   //each cluster of context sequences which is represented by             a sequence template are subjected to a functional appraisal.             This is typically performed by first retrieving the names or             unique identifiers of genes regulated or affected by the             context sequence within a cluster; and secondly, executing             functional appraisal on the names or unique identifiers             retrieved.     -   8. Store <Cluster, significant functional appraisal results> in         repository;}}

In a one embodiment, step 1 is replaced with: “for a given sub set of each c=(a₁a₂a₃ . . . a₁), a_(i) ε{A,T,G,C}, 1≧i≧l;”. In this manner, the method is utilized for a particular subset of context sequences of interest. The latter embodiment can be used to loop through a subset of possible sequences instead of looping through the entire vector space of possible sequences. This may be advantageous for achieving more efficient execution time in cases, for example, that some sequences are known not to feature substantial sequence patterns or important functional characteristics.

The VS differs from the LBDL in several aspects. For example, each context sequence in LBDL is classified into a single cluster. On the other hand, VS may classify each context sequence is several clusters. In that respect CVS is a “softer” classifier which sometimes can be advantageous because a single context sequence may be associated with multiplicity of functional attributes or attributes set. Another difference lies in the fact that VS typically spans thorough the entire vector space of all possible sequences i.e. even sequences which are absent from the context sequences of the data set. This is especially advantageous where synthetic or predicted sequences cannot be found in vivo. This is exemplified in the Step 1, where the analysis is performed for each (c) representing a possible sequence (not necessarily a context sequence of the data set).

SECTION III

The present invention, in some embodiments, relates to an implementation of specialized memory structures and processes for computations. These structures and processes may optionally be implemented with the embodiments described above and/or may also optionally be used independently.

Memory Module for Holding Parameterized Information

Traditionally, the easiest and most straight forward approach to manage distance information of a dataset is a “distance matrix”. The later typically comprises 2D matrix of distances, such that each cell in said matrix holds the distance between a pair points of a set. A distance matrix is typically a symmetric N×N matrix containing real numbers as elements, given N points in a set. However, in large data sets, as might occur in the present case, the distance matrix performance is unacceptable. The performance time of retrieving the minimal or maximal element stored in the distance matrix is impractical for large data sets i.e. time for retrieving minimal/maximal element stored in the distance matrix.

Consider an exemplary size of the context sequences data set having N=16,000 i.e 16,000 context sequences. The matrix size would supposedly be O(N²) because the distance information represents all pair of said context sequences data set. Utilizing distance matrix would entail a typical retrieval time of a single minimal (or maximal) element in time complexity of O(N²). This renders the 2D distance matrix as unfavorable for use in the present invention, especially in case of large datasets.

In the present invention, “key” is a parameter within a data field comprising a value stored within a data item, or node. Preferably, key is a parameter capable of at least semi-order. By way of non-limiting example, a key may comprise a real number stored in a data item. Where (A) is data item, “KEY(A)” shall mean the parameter within a data field of data item (A). As an example, the key in a data item (i,j,d(i,j)) of the present invention can be the field consisting the distance between the pair of clusters i and j.

“heap” is a data structure based of tree topology that satisfies a general heap invariant as follows: For each pair of elements, items or child nodes in a heap, X and Y: where X is a child node of Y, then KEY(Y)≦KEY(X) i.e. The node having the maximum value as key (“greatest element”) is the top node (or root node) of the heap. This heap is typically referred to a max-heap. Where KEY(Y)≦KEY(X), the smallest element is always the top node, and the heap is referred to as a min heap. “DeleteMin( )” or “deletion” shall mean removing and retrieving the root node of a min-heap. “Insert( )” or “insertion” shall mean adding a new element to a min heap. Heap shall further mean as defined in Corman et al¹⁷ which is incorporated herein by reference.

A min heap provides an efficient data structure in which retrieving a minimal element is performed at O(log N). The latter is clearly more efficient in comparison to the traditional distance matrix at about 2 orders in magnitude.

For large data sets, however, a min heap is utterly inappropriate. To hold the complete distance dataset in a min heap is impractical. A PC having 1 GB available RAM and equipped with 3 GHz Intel Pentium processor can handle a min heap of about 300,000 data elements which means that data set cannot be greater than about N=600.

Therefore, in one of its aspects, the present invention provides a “multiple-tree-array” as defined and exemplified below. For the purpose of the present invention, “multiple-tree-array” shall mean memory module or data structure comprised therein employing plurality of tree topologies representing plurality of min-heaps, wherein the plurality of tree topology is managed through a common interface. There the present invention is directed to a computer memory system comprising a plurality of tree topologies representing plurality of (k) heaps, wherein the plurality of tree topologies is managed through a common interface; such that (k≧1).

FIG. 8 illustrates, in accordance with one embodiment of the present invention, a multiple-tree-array topology within a memory module. The top item, the item having the minimum distance, is the element having the minimal key value amongst the (k) min heaps as shown. Therefore, in one embodiment the computer memory system comprises min heaps.

The global minimum in the multiple-tree-array is defined as the minimal element (or minimal root element) amongst the min heaps comprising the multiple-tree-array. In other words, the minimal element is holding the minimal key value in comparison to all (k) min heaps which comprises the multiple-tree-array (hereafter: min-heap invariant). In one embodiment, the global minimum is the minimal distance between a pair of context sequences or sequence templates.

FIG. 8a illustrates similarly, in accordance with another embodiment of the present invention, a multiple-tree-array topology within a memory module. The root element, in this embodiment, is the element having the maximal key value amongst the (k) max heaps as shown. One of ordinary skill in the art would appreciate that while the multiple-tree-array is exemplified herein as a multiple-tree-array comprising min heaps and having a global minimal element, the present invention similarly relates to multiple-tree-array comprising max heaps and having a global maximal element.

In another embodiment, therefore the computer memory system comprises max heaps.

For the purposes of the present invention, “secondary storage” shall mean any data storage system performing slower than typical RAM (Random Access Memory). Secondary Storage typically includes the non-volatile or semi-permanent storage in a computer environment. Common secondary storage devices are diskettes, hard drives, or tapes.

In an embodiment, each specific heap comprising the multiple-tree-array can be configured to operate as a conventional heap, either min- or max-heap. Insertion of a data item into the multiple-tree-array can be performed by invoking an Insert( ) procedure upon a specific min heap in the multiple-tree-array with one proviso. If the size of the specific min heap reaches a certain predetermined size threshold, another min heap which is selected for the insertion procedure. In the case where all min heaps reached the predetermined size threshold, additional memory comprising min-heap or max-heap is allocated to the multiple-tree-array memory module.

In one embodiment, said size threshold is in the range of 100-1000 elements, 1000-50000 elements, 50000-100000 elements, or 100000-350000 elements. In one embodiment, the element is a data item as defined above.

Deletion of a data item from the multiple-tree-array which comprises min-heaps can be performed by deleting the global minimum of the multiple-tree-array. As defined, global minimum is the minimal top element which holds the minimal key value in comparison to all (k) min heaps comprising in the multiple-tree-array. Following the deletion of the global minimum, the deleted element is replaced by an element from a specific min heap ensuring the heap invariant. That is ensuring that global minimum is the element which holds the minimal key value in comparison to all (k) min heaps comprising in the multiple-tree-array. Where the last element in a min heap is removed the min heap can be released from the multiple-tree-array memory module. Where all the min heaps in the multiple-tree-array memory module have removed their respective last top element, the entire multiple-tree-array memory module is deemed to be empty or null.

The multiple-tree-array provides storage and retrieval performed at the worst case time of O(k log n), where (k) in the number of heaps managed therein.

An “active min heap” and “active subset of min heaps” shall mean the min heaps which are stored in RAM, and at least one of the min heaps stores the global minimum of the multiple-tree-array. A “passive min heap” and “passive subset of min heaps” shall mean the min heaps which are held in secondary storage.

An “active max heap” and “active subset of max heaps” shall mean the max heaps which are stored in RAM, and at least one of the heaps holds the global maximum of the multiple-tree-array. A “passive max heap” and “passive subset of heaps” shall mean the max heaps which are held in secondary storage.

In another embodiment, an active subset of heaps is held in RAM, while the rest of the heaps are maintained on a secondary storage. In another embodiment, a subset of passive min heaps is maintained on secondary storage. In another embodiment, an active subset of max heaps is held in RAM, while the rest of the heaps are maintained on a secondary storage. In another embodiment, a subset of passive max heaps is maintained on secondary storage.

Special attention should be made for ensuring the dominance of the min heap invariant. Where DeleteMin( ) procedure retrieved and erased the global minimum from the multiple-tree-array, the next global minimum may be located at a passive min heap on secondary storage. Therefore, the min heap invariant cannot be ensured with a current active subset of min heaps. The multiple-tree-array is configured to replace or switch at least one of the active min-heap with at least one passive min heap (one of which is storing the current global minimum).

In one embodiment, a data item in a min heap array shall have at least the following members (i,j,d(i,j)) whereby i and j are pointers to respective templates (of the template matrixes) and the third member is a real number representing the distance between the templates i.e. the 3^(rd) field in the data item is the key, the common field as defined above.

In another embodiment, a template (or a context sequence represented thereby) can be erased or invalidated from the data set during the “life time” of the multiple-tree-array. The invalidation may occur upon merger of templates, as described in the present invention. The merger procedure typically entails invalidation of the merged templates. In such a case, at least one existing data item in the multiple-tree-array (i,j,d(i,j)) may be holding distance information relating to the invalidated template. Therefore, said existing data item requires in turn its invalidation or deletion. Typically, such invalidation would require O(2N) deletions of data items from the multiple-tree-array (N be the number of the cluster).

Therefore, in yet another aspect, the present invention is directed to a postponed deletion procedure or postponed invalidation procedure. The deletion is postponed until the operation of DeleteMin( ). The postponed deletion or invalidation of the data item is delayed until their respective deletion by the operation of DeleteMin( ). In other word, instead of searching for the data item for deletion, the multiple-tree-array “awaits” until the invalidated data item is retrieved, by operation of DeleteMin( ). Following the operation of DeleteMin( ), the retrieved data item (i,j,d(i,j)) is verified to be comprising valid data or valid templates (i) and (j).

By way of non-limiting example, validation procedure utilizes a one dimensional array of Boolean values (B) such that B[i] holds #true if and only if template (i) is of valid status. Alternatively, the validation procedure can utilize an array of other validation information such as but not limited to: a time stamp or a string representing a status.

SECTION IV

The computer implemented method of the present invention for identifying a sequence template as statistically associated with an attribute set of interest typically comprises: (a) providing a repository of attributes sets, said attributes set is statistically associated with a sequence template; (b) selecting an attributes set of interest; and (c) retrieving at least one sequence template statistically associated with said attribute set. Typically, a sequence template represents two or more context sequences. Moreover, the attributes set can consist of two or more attributes of interest selected by a user or client. The retrieved sequence template of step (c) typically also represents two or more context sequences. Optionally, retrieved sequence template or cluster represented thereby is a heterogeneous cluster.

In an embodiment, the repository was obtained according to any method of the present invention. In particular, the repository can be obtained by utilization of the LBDL clustering method. In another embodiment, the repository was obtained by utilization of the VS clustering method. Optionally, the repository is a heterogeneous repository.

Attributes or function attributes of interest can be selected for from the group consisting: the Gene Ontology Project (GO), Interpro annotation (European Molecular Biology Laboratory, EMBL), SMART (a Simple Modular Architecture Research Tool, found at smart.embl-heidelberg.de), UniProt Knowledgebase (SwissProt), OMIM (by NCBI) PROSITE (by the Swiss Institute of Bioinformatics), Protein Information Resource (PIR), GeneCards, and Kyoto Encyclopedia of Genes and Genomes (KEGG).

For the purposes of the present invention, “similarity”, “similarity degree”, or “sd” between any pair of function attributes arrays V, and W can be determined by the following procedure:

sd ← 0 For each a ∈ {complete - function - attributes - set} { // for each attribute in the complete function attributes array, sum up the differences or divergence between the respective real values if (V[a].value == #true and W[a].value == #false) {sd++;} // as different increase the distance by 1 if (V[a].value==false and W[a].value==true) {sd++;} }

Wherein:

(a)—represents a particular function attribute name; and

V[a].value—represents a value associated to particular function (a).

V and W comprises binary digits as values;

Where V and W comprises real numbers as values, “similarity” between any pair of function attributes arrays V, and W can be determined by the following procedure:

sd ← 0 For each a ∈ {complete - function - attributes - set}{ // for each attributes in the function attribute array, sum up the differences or divergence between the respective real values sd+=| V[a].value−W[a].value | }

Wherein:

(a)—represents a particular function attribute name; and

V[a].value—represents a value associated to particular function (a).

One of ordinary skill in the art would understand that either V and/or W may not comprise a particular function attribute. This scenario can be represented as: V[a].value=null i.e. particular function attribute ‘a’ is not associated with V. In such a case, the value may be deemed to have a default value or another symbol which represent a null value.

In an embodiment, where the attributes array features an array of real numbers as values, ‘0.0’ may be deemed to represents a non inclusion of a particular function.

In an embodiment, the above step of (sd+=|V[a].value−W[a].value |) can be performed if and only if (V[a].value !=null and W[a].value !=null). Thus, null valued attributes are ignored.

One of ordinary skill in the art would understand that similarity degree can be determined by the above distance measurement between a pair of function attribute arrays. However, many alternative approaches may be adopted to provide a measure of similarity between function attribute arrays.

For the purposes of the present invention, “functional significance appraisal”, “functional appraisal”, “attribute appraisal” and “functional significance test” shall mean refer to a computational method comprising a statistical test yielding confidence-level or probability, P_value that at least one function attribute is associated with a given gene cluster or gene cluster regulated or otherwise affected by context sequence(s).

The typical input for this computational method is the names or unique identifiers of genes regulated or otherwise affected by the context sequence within a cluster.

The typical result (or output) of functional appraisal is typically a list of attributes which can be deemed as statistically over represented within said input cluster. The list of attributes can further comprise the P_value or confidence level of an attribute within the list.

By way of another non-limiting example, the statistical test can be based on Fisher exact probability test, or hyper-geometric (HG) probability distribution pertaining the sampling without replacement from finite population as explained hereinafter. By way of illustration, N typically denotes the entire size of the gene population (i.e. population size); n denotes the size of context sequence cluster under analysis (i.e. sample size); m denotes the number of genes in the entire population characterized by at least one function attribute (i.e. the “unique” group size); k denotes the number of unique items found in the cluster under analysis. For example, assume N=16,231, n=197, m=678, and k=20 the P_value is therefore 0.0001467. The hypergeometric distribution with parameters N, m and n, and k, can therefore define the probability of getting exactly k genes characterized by said function attribute in a cluster of input genes (or context sequence cluster regulating or affecting them).

Jackknife methodologies and other confidence assisting procedures can be added to increase the confidence level of the enrichment results. Functional appraisal tools can be purchased in, for example, (http://david.abcc.nicferf.gov)^(20,21).

In one embodiment, the retrieval of a sequence template statistically associated with an attribute set of interest comprises: determining similarity between the attributes set of interest and each attributes set previously inserted into repository; and retrieving from the repository a sequence template associated with at least one attributes set previously inserted into said repository.

The repository can typically comprise (N) pair(s) of sequence templates and their associated attributes set: <T_(i),AS_(i)>, 1≧i≧N, where T_(i), and AS_(i) are a sequence template and attributes set of the i-th record in the repository, respectively. The method of retrieval of a sequence template statistically associated with an attribute set (AS) of interest, can therefore be performed by: (a) determining similarity, by utilizing similarity formula such as, but not limited to ds(AS,AS_(i)), as defined above; and (b) retrieval of <T_(i),AS_(i)>, 1≧i≧N from the repository together with the respective, ds(AS,AS_(i)).

The order of retrieved records is preferably in descending order according to the similarity degree. The retrieved sequence template typically also represents two or more context sequences. The later may be either identical context sequences or typically context sequence consisting of different sequences.

Moreover, the attributes set associated with the context sequence(s) or sequence template can consist of two or more attributes. Optionally, the context sequence(s) or sequence template may be statistically associated with a particular attribute even where at least one of the context sequence (or gene affected thereby) is not characterized by the attribute. In other words, the retrieval procedures of the present invention therefore enable retrieval of heterogeneous clusters, as defined above.

The retrieval of a sequence template statistically associated with said attribute set, may comprises the steps of: determining similarity between the attributes set of interest and at least one attributes set previously inserted into repository; and retrieving from the repository a sequence template associated with the at least one attributes set previously inserted into said repository.

The repository can therefore typically comprise (N) of pair(s) of sequence templates and their associated attributes set: <T_(i),AS_(i)>, 1≧i≧N, where T_(i), and AS_(i) are a sequence template and attributes set of the i-th record in the repository, respectively. The method of retrieval of a sequence template statistically associated with an attribute set (AS) of interest, can therefore be performed by: (a) determining similarity, by utilizing similarity formula such as, but not limited to ds(AS,AS_(i)), as defined above; and (b) retrieval at least one of <T_(i),AS_(i)>, 1≧i≧N, from the repository together with respective ds(AS,AS_(i)). The order of retrieved records is preferably in descending order according to the similarity degree.

The retrieved sequence template typically also represents two or more context sequences. The later may be either identical context sequences or typically context sequence consisting of different sequences.

In the above embodiments, the method typically retrieves at least one sequence template together with a degree of similarity between the attributes set of interest and the attributes set statistically associated with the sequence template. However, filtering of at least one sequence template is typically required.

To that end, in another optional embodiment, the retrieving includes discarding a sequence template associated with said at least one attributes set, where the similarity between said at least one attributes set and the attributes set is above a predefined threshold (L). In that respect therefore, the retrieval further comprises discarding (or filtering out) records having ds(AS,AS_(i))≧(L).

The threshold (L) can be set to various values depending on the number of results sought by the user or the client. As an alternative, the user or client may wish to retrieve the best result alone.

To that end, the retrieving step includes discarding a sequence template associated with said at least one attributes set, where the similarity between said at least one attributes set and the attributes set of interest is above the global minimum. In that respect therefore, the retrieval further comprises discarding (or filtering out) records having ds(AS,AS_(i))>min_(1≧j≧N)(ds(AS,AS_(j))).

In an embodiment, said retrieving includes discarding attributes (i.e. members of the attributes set) where the functional appraisal resulted with a respective P_value greater than 0.3, 0.2, 0.1, or preferably greater than 0.05. The person skilled in the art would appreciate that other P_values ranges can be selected for a particular data set in hand.

Following retrieval of the two or more sequence template statistically associated with said attribute set of interest, the method can further comprise merging at least two of retrieved sequence template (or clusters represented thereby). Merger procedure is detailed above.

SECTION V—EXPERIMENTAL EXAMPLES

This Section relates to experimental examples, illustrating the above embodiments of the present invention. These examples are provided for the purpose of illustration only and without any intention of being limiting in any way.

Example 1: Arabidopsis Thaliana

A. Dataset

The complete RefSeq sequences of plants mRNA was downloaded (http://www.ncbi.nlm.nih.gov/RefSeq). The database vas filtered in order to exclusively include mRNA sequences of Arabidopsis Thaliana. The dataset was thereafter cleaned of duplicate genes to reduce over representation of identical genes. The translation initiator codon was identified using the RefSeq CDS. Sequence in the length of 9 nucleotides preceding translation initiator codon were parsed, and indexed. The dataset thereafter included the total of 16,491 short sequences of 9 successive nucleotides. The complete dataset was aligned.

B. Application of the LBDL Clustering Method

The LBDL clustering method was applied on the mRNA dataset in 8 separate phases. In each phase the algorithm was provided with a different Lower Bound Distance Limit so as to cluster with varying degree of stringency (0.01; 2.01; 3.01; 4.01; 5.01; 6.01; and 7.01). The separate phase analysis provides an opportunity to investigate smaller more exotic clusters of genes before they merge into larger cluster and lose some significant functional properties along the way.

C. Significant Functional Enrichments of Plant Gene Clusters

Table 1 prescribes the emerging gene clusters which were identified by LBDL clustering method. This table includes selected clusters which demonstrated significant functional attributes.

The clusters in Table 1 are arranged according to size i.e. number of different genes in each cluster. For each cluster, said table provides a template comprising matrix T_(4×9), where the distribution of nucleotides for each position preceding the translation initiation codon. For convenience, the most frequent sequence of successive nucleotides, is disclosed i.e. the dominant context sequence.

The translation initiation codon is at position ‘0’ and does not appear in the table. Table 1 includes a portion of results due the amount of information the LBDL clustering method extracted and collected.

For each template disclosed, the table provides the significant functions or functional attribute set associated with the template. The largest gene cluster includes some 1613 distinct genes. The second largest cluster has 1433 distinct genes. These clusters seem to support previous work which stipulated the A-rich conserved region in higher plants²². The large clusters were enriched, inter alia, with genes encoding nuclear and transcription related proteins, partially in contradiction to previous speculations²³. Another observation is that the smaller clusters tend to be quite distant from the largest gene clusters. Smaller clusters tend also to include non-A nucleotides with distribution above 80%. For easier reference these nucleotides were highlighted in the body of the table.

As now shown in Table 1, the dominant context sequence ‘tttttaaaa’ is clearly associated for the first time with response to abiotic stimulus and further chemical stimulus. Moreover, a plurality of dominant context sequences are now associated with transcription regulation and transcription in general. For example, templates associated with transcription regulation consists, inter alia, of: ‘aaaaaaaaa’, ‘gttaagaaa’, ‘ttttcttca’ and ‘gagagagaa’. Photosynthesis is associated with ‘acaaaaaca’, and also ‘gaagaagaa’. This unravels the fact that as many as a single function can be associated to a plurality of context sequences or dominant context sequences with strong statistical significance. Table 1 illustrates plurality of other templates and their association with significant functional attributes.

The statistically supported association of functional attribute arrays with a template can be used both in research and genetic engineering.

Example 2: Homo sapiens

A. Dataset

The complete RefSeq sequences of Human mRNA were downloaded (http://www.ncbi.nlm.nih.gov/RefSeq). The database was filtered in order to exclusively include mRNA sequences of Homo sapiens. The dataset was thereafter cleaned of duplicate genes to reduce over representation of identical genes. The translation initiator codon was identified using the RefSeq CDS, Sequence in the length of 9 nucleotides preceding translation initiator codon were parsed, and indexed. The dataset thereafter included the total of 17,053 short sequences of 9 successive nucleotides. The complete dataset was aligned.

B. Application of the LBDL Clustering Method

The LBDL clustering method was applied on the mRNA dataset in 3 separate phases. In each phase the algorithm was provided with a different Lower Bound Distance Limit so as to cluster with varying degree of stringency (5.01; 6.01; and 7.01). The separate phase analysis provides an opportunity to investigate smaller more exotic clusters of genes before they merge into larger cluster and lose some significant functional properties along the way.

C. Significant Functional Enrichments of Human Gene Clusters

Table 2 prescribes the emerging gene clusters which were identified by LBDL clustering method. This table includes selected clusters which demonstrated significant functional attributes.

The clusters in Table 2 are arranged according to size i.e. number of different genes in each cluster. For each cluster, said table provides a template comprising matrix T_(4×9), where the distribution of nucleotides for each position preceding the translation initiation codon. For convenience, the most frequent sequence of successive nucleotides, is disclosed i.e. the dominant context sequence.

The translation initiation codon is at position ‘0’ and does not appear in the table. Table 2 includes only a portion of the results due the amount of information the LBDL clustering method extracted and collected.

The most significant functional enrichment of each cluster appears as well. The largest gene cluster includes some 1562 distinct genes. The second largest cluster has 987 distinct genes.

Another observation is that the smaller clusters tend to be quite distant from the largest gene clusters.

As now shown in Table 2, the context sequence ‘gccagcacc’ can be associated with response to pest, or pathogen. Importantly the same context sequence is statistically associated with immunoglobulin and the immune system. Moreover, plurality of context sequences are now associated with transcription regulation and transcription in general. For example, templates associated with transcription regulation consists, inter alia, of: ‘cgcgggaag, ‘ggaggaaaa’, and ‘ctgaagaaa’. Metabolism is statistically associated with ‘cccgccgcg’, ‘agcctagaa’ and also ‘ctgaagaaa’. Again, as many as a single function can be associated to a plurality of context sequences with strong statistical significance. Table 2 illustrates plurality of other templates and their association with a significant functional attributes.

The statistically supported associating functional attribute arrays with a template can be used both in research and genetic engineering.

Example 3: Mus Musculus

A. Dataset

The complete RefSeq sequences of Mus Musculus mRNA was downloaded (http://www.ncbi.nlm.nih.gov/RefSeq). The database was filtered in order to exclusively include mRNA sequences of Mus Musculus. The dataset was thereafter cleaned of duplicate genes to reduce over representation of identical genes. The translation initiator codon was identified using the RefSeq CDS. Sequence in the length of 9 nucleotides preceding translation initiator codon were parsed, and indexed. The dataset thereafter included the total of 15,312 short sequences of 9 successive nucleotides. The complete dataset was aligned.

B. Application of the LBDL Clustering Method

The LBDL clustering method was applied on the mRNA dataset in 3 separate phases. In each phase the algorithm was provided with a different Lower Bound Distance Limit so as to cluster with varying degree of stringency (5.01; 6.01; and 7.01). The separate phase analysis provides an opportunity to investigate smaller more exotic clusters of genes before they merge into larger cluster and lose some significant functional properties along the way.

C. Significant Functional Enrichments of Plant Gene Clusters

Table 3 prescribes the emerging gene clusters which were identified by LBDL clustering method. This table includes selected clusters which demonstrated significant functional attributes.

The clusters in Table 3 are arranged according to size i.e. number of different genes in each cluster. For each cluster, said table provides a template comprising matrix T_(4×9), where the distribution of nucleotides for each position preceding the translation initiation codon. For convenience, the most frequent sequence of successive nucleotides, is disclosed i.e. the dominant context sequence.

The translation initiation codon is at position ‘0’ and does not appear in the table. Table 3 includes only a portion of the results due the amount of information the LBDL clustering method extracted and collected.

The most significant functional enrichment of each cluster appears as well. The largest gene cluster includes some 1197 distinct genes. The second largest cluster has 710 distinct genes.

As now shown in Table 3, the context sequence ‘gccgccgcc’ can be associated with sh3 domain. Moreover, plurality of context sequences are now associated with metabolism in general. For example, templates associated with metabolism consists, inter alia, of: ‘ccccgcgcc, and ‘cggaggaag’. Metal ion binding is statistically associated with both ‘gccgccgcc’, and ‘ccccgcgcc’. Again, as many as a single function can be associated to a plurality of context sequences with strong statistical significance. Table 3 illustrates plurality of other templates and their association with a significant functional attributes.

The statistically supported associating functional attribute arrays with a template can be used both in research and genetic engineering.

Example 4: Bos Tauros

A. Dataset

The complete RefSeq sequences of Bos Tauros mRNA was downloaded (http://www.ncbi.nlm.nih.gov/RefSeq). The database was filtered in order to exclusively include mRNA sequences of Bos Tauros. The dataset was thereafter cleaned of duplicate genes to reduce over representation of identical genes. The translation initiator codon was identified using the RefSeq CDS. Sequence in the length of 9 nucleotides preceding translation initiator codon were parsed, and indexed. The dataset thereafter included the total of 9,723 short sequences of 9 successive nucleotides. The complete dataset was aligned.

B. Application of the LBDL Clustering Method

The LBDL clustering method was applied on the mRNA dataset in 3 separate phases. In each phase the algorithm was provided with a different Lower Bound Distance Limit so as to cluster with varying degree of stringency (5.01; 6.01; and 7.01). The separate phase analysis provides an opportunity to investigate smaller more exotic clusters of genes before they merge into larger cluster and lose some significant functional properties along the way.

C. Significant Functional Enrichments of Plant Gene Clusters

Table 4 prescribes the emerging gene clusters which were identified by LBDL clustering method. This table includes selected clusters which demonstrated significant functional attributes.

The clusters in Table 4 are arranged according to size i.e. number of different genes in each cluster. For each cluster, said table depicts the distribution of nucleotides for each position preceding the translation initiation codon. For convenience, the most frequent sequence of successive nucleotides, is disclosed i.e. the dominant context sequence.

The clusters in Table 4 are arranged according to size i.e. number of different genes in each cluster. For each cluster, said table provides a template comprising matrix T_(4×9), where the distribution of nucleotides for each position preceding the translation initiation codon together with the most frequent sequence of successive nucleotides, is disclosed. Table 4 illustrates plurality of other templates and their association with a significant functional attributes.

The most significant functional enrichment of each cluster appears as well. The largest gene cluster includes some 815 distinct genes. The second largest cluster has 583 distinct genes.

Example 1-4 exemplify numerous heterogeneous clusters detailed in Tables 1-4 which were identified by the method and systems of the present invention.

REFERENCES

-   ¹Everitt. B., Cluster Analysis, Edward Arnold, London, 1993 -   ¹W. Zhong, G. Altun, R. Harrison, P. C. Tai, and Y. Pan, Improved     K-Means Clustering Algorithm for Exploring Local Protein Sequence     Motifs, Representing Common Structural Property, IEEE TRANSACTIONS     ON NANOBIOSCIENCE, VOL. 4, NO. 3, SEPTEMBER 2005. -   ¹K. F. Han, D. Baker, Recurring local sequence motifs in proteins J.     Mol. Biol., vol. 251(1), pages 176-187, 1995 -   ¹ Heidecker G, Messing J: Structural analysis of plant genes. Annu.     Rev. Plant Physiol. 37, 439-466 (1986) -   ¹C. P. Joshi, An Inspection of the domain putative An inspection of     the domain between putative TATA box and translation start site in     79 plant genes, Nucleic Acids Research, 1987, Vol. 15, No. 16     6643-6653. -   ¹C. P. Joshi, H. Zhou, X. Huang and V. L. Chiang, Context sequences     of translation initiation codon in plants, Plant Molecular Biology     35: 993-1001, 1997; Q. Liu, Q. Xue, Comparative studies on sequence     characteristics around translation initiation codon in four     eukaryotes, Journal of Genetics, Vol. 84, No. 3, December 2005. -   ¹M. Jaiswal, L. Rangan, Context Sequence For Transcription Factors     Surrounding Start Codon in Model Crops, CURRENT SCIENCE, VOL. 93,     NO. 2, 25 Jul. 2007. -   ¹Kozak M. Nucleotide sequences of 5′-terminal ribosome-protected     initiation regions from two reovirus messages. Nature. 1977 Sep. 29;     269(5627):391-4; Kozak M. Possible role of flanking nucleotides in     recognition of the AUG initiator codon by eukaryotic ribosomes.     Nucleic Acids Res. 1981 Oct. 24; 9(20):5233-52.; Kozak M. Sequences     of ribosome binding sites from the large size class of reovirus     mRNA. J Virol. 1982 May; 42(2):467-73 -   ¹Compilation and analysis of sequences upstream from the     translational start site in eukaryotic mRNAs. Nucleic Acids Res.     1984 Jan. 25; 12(2):857-72.; Kozak M: An analysis of 50-noncoding     sequences from 699 vertebrate messenger RNAs. Nucl Acids Res 15,     8125-8148 (1987); Kozak M: At least six nucleotides preceding the     AUG initiator codon enhance translation in mammalian cells. J Mol     Biol 196: 947-950 (1987). -   ¹Samir V. S., Pradhyumna K. S., Shiv K. G., Raju M. and Rakesh T,     Conserved nucleotide sequences in highly expressed genes in plants,     Journal of Genetics, Vol. 78, No. 2, August 1999 123. -   ¹Taylor J L, Jones J D G, Sandler S, Mueller G M, Bedbrook J,     Dunsmuir, Optimizing the Expression of Chimeric Genes in Plant     Cells, Mol. Gen. Genet. (1987) 210, pages 572-577. -   ¹Sleat D. E., Gallie D. R., Jefferson R. A., Bevan M. W., Turner P.     C., Wilson T. M. A., Characterization of the 50-leader Sequence of     Tobacco Mosaic Virus RNA as a General Enhancer of Translation in     vitro, Gene (1987) 217: 217-225. -   ¹Chandrashekhar P. Joshi, Hao Zhou, Xiaoqiu Huang and Vincent L.     Chiang, Context sequences of translation initiation codon in plants,     Plant Molecular Biology 35: 993-1001, 1997, at p. 998 below. -   ¹C. P. Joshi, H. Zhou, X. Huang and V. L. Chiang, Context sequences     of translation initiation codon in plants, Plant Molecular     Biology (1997) 35: 993-1001, see Table 3 at p. 1000. -   ¹See for example U.S. Pat. No. 7,253,342. -   ¹D. Arthur, S. Vassilvitskii, How Slow is the k—Means Method?, 2006     (Stanford, yet unpublished). See     http://www.stanford.edu/˜sergeiv/papers/kMeans-socg.pdf -   ¹Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest (1990):     Introduction to algorithms. MIT Press/McGraw-Hill. -   ¹Dennis G Jr, Sherman B T, Hosack D A, Yang J, Gao W, Lane H C,     Lempicki R A. DAVID: Database for Annotation, Visualization, and     Integrated Discovery. Genome Biology 2003, 4(5). -   ¹D. A Hosack, G. D. Jr, B. T Sherman, H C. Lane, R. A Lempicki.     Identifying Biological Themes within Lists of Genes with EASE.     Genome Biology 2003 4(6). -   ¹Dennis G Jr, Sherman B T, Hosack D A, Yang J, Gao W, Lane H C,     Lempicki R A. DAVID: Database for Annotation, Visualization, and     Integrated Discovery. Genome Biology 2003, 4(5). -   ¹D. A Hosack, G. D. Jr, B. T Sherman, H C. Lane, R. A Lempicki.     Identifying Biological Themes within Lists of Genes with EASE.     Genome Biology 2003 4(6). -   ¹Chandrashekhar P. Joshi, Hao Zhou, Xiaoqiu Huang and Vincent L.     Chiang, Context sequences of translation initiation codon in plants,     Plant Molecular Biology 35: 993-1001, 1997. -   ¹Chandrashekhar P. Joshi, Hao Zhou, Xiaoqiu Huang and Vincent L.     Chiang, Context sequences of translation initiation codon in plants,     Plant Molecular Biology 35: 993-1001, 1997, at p. 999. 

1-16. (canceled)
 17. A computer readable non-transitory memory comprising a random-access memory (RAM) and a secondary storage, the computer readable memory storing a distance matrix data structure configured to store data items comprising references pointing at two objects and a real number being a measured distance calculated by a distance formula, wherein the distance matrix data structure is implemented with a multiple-tree-array, and wherein the multiple tree array comprises a root node and a plurality of heaps, such that at least one of the heaps is stored in the RAM as an active heap, and at least one of the heaps is stored in the secondary storage as a passive heap.
 18. The computer readable non-transitory memory of claim 17, wherein the multiple-tree-array is configured to replace or switch at least one of the active heaps with at least one passive heap in order to ensure the dominance of a heap invariant when a Delete( ) procedure erased a global minimum or maximum from the multiple-tree-array, wherein the heap invariant according to which the top or bottom data item in the multiple-tree-array is a data item having the minimal measured distance in the multiple-tree-array.
 19. The computer readable non-transitory memory of claim 17, wherein said heaps are min heaps.
 20. The computer readable non-transitory memory of claim 17, wherein said heaps are max heaps.
 21. The computer readable non-transitory memory of claim 17, wherein the plurality of heaps represents a plurality of tree topologies, wherein the plurality of tree topologies is configured to be managed through a common interface.
 22. The computer readable non-transitory memory of claim 17, wherein the data items which are stored comprise references pointing at two objects and a real number, wherein the data items represent a cluster of context sequences and the real number measures the distance between the context sequences, wherein the cluster of context sequences comprises a set of gene unique identifiers which are operably linked by the context sequences within the cluster.
 23. A computer implemented method for obtaining a computer readable non-transitory memory comprising attributes sets stored therein, wherein attributes sets are statistically associated with a sequence template representing two or more context sequences, comprising: (a) obtaining a dataset of context sequences; (b) transforming each context sequence to a sequence template, thereby obtaining a dataset of sequence templates; (c) clustering said dataset of sequence templates into a plurality of clusters according to a distance formula, wherein at least one cluster is statistically associated with at least one attributes set; and (d) inserting into said computer readable non-transitory memory each of said clusters and said attributes set which is statistically associated with said each of said clusters.
 24. The computer implemented of claim 23, wherein said dataset of context sequences of step (a) is further subjected to multiple sequence alignment.
 25. A computer readable non-transitory memory obtained by the computer implemented method of claim 23, said computer readable non-transitory memory comprising a random-access memory (RAM) and a secondary storage.
 26. A method of preparing a polynucleotide construct, comprising: (a) identifying a sequence template as statistically associated with an attributes set of interest according to the method of claim 23; (b) preparing a polynucleotide construct having at least one portion operably linked to a context sequence; wherein said context sequence is characterized as having either 80%-85%, 85%-90%, or 90%-100% homology with said sequence template.
 27. The method of claim 26, wherein the preparing comprises synthesizing said context sequence.
 28. The method of claim 26, wherein the preparing comprises constructing an expression vector comprising said context sequence.
 29. The method of claim 26, wherein the preparing comprises constructing a probe comprising said context sequence. 